Optimal Global Instruction Scheduling Using Enumeration
نویسندگان
چکیده
Instruction scheduling is one of the most important compiler optimizations. An instruction scheduler reorders instructions to improve performance by minimizing pipeline stalls. Traditional approaches to instruction scheduling were based on heuristics. Over the past decade, however, a number of researchers have proposed optimal solutions to instruction scheduling. This dissertation presents the first set of algorithms to optimally schedule two global instruction scheduling regions: traces and superblocks. A global scheduling region is a collection of basic blocks that a compiler schedules simultaneously to exploit instruction-level parallelism (ILP) across basic block boundaries. Several heuristic techniques have been proposed for scheduling traces and superblocks, but the precision of these heuristics has not been studied relative to optimality. Optimality in this dissertation is defined as minimizing the expected schedule length, which is the weighted sum of schedule lengths across all code paths in the scheduling region. Optimal instruction scheduling is known to be NP-hard. So, the optimal algorithms proposed in this work use branch-and-bound enumeration with a number of novel pruning techniques to efficiently explore the entire solution space within reasonable time. Experimental evaluation of the proposed algorithms shows that, within a per-problem time limit of one second, 93% of the hard traces and 99% of the hard superblocks in the SPEC int2000 benchmarks are scheduled optimally. 87% of the optimally scheduled hard traces and 83% of the optimally scheduled hard superblocks in those benchmarks have improved schedules compared to typical heuristic schedules.
منابع مشابه
Constraint Programming Techniques for Optimal Instruction Scheduling
Modern processors have multiple pipelined functional units and can issue more than one instruction per clock cycle. This puts great pressure on the instruction scheduling phase in a compiler to expose maximum instruction level parallelism. Basic blocks and superblocks are commonly used regions of code in a program for instruction scheduling. Instruction scheduling coupled with register allocati...
متن کاملCode Generation for Custom Architectures using Constraint Programming
As custom multicore architectures become more and more common for DSP applications, instruction selection and scheduling for such applications and architectures become important topics. In this paper, we explore the effects of defining the problem of finding an optimal instruction selection and scheduling as a constraint satisfaction problem (CSP). We incorporate methods based on sub-graph isom...
متن کاملRegister Allocation Instruction Scheduling A New Approach
Instruction scheduling and register allocation are two very In this paper, we solve register allocation and instruction scheduling simultaneously using integer linear programming (ILP). theform ulation?a new ???v ariableU has taken several approaches, including: branch-andbound enumeration (5) (13). more expensive register spill and reload instructions in the program. Eager code This thesis dev...
متن کاملInstruction Scheduling Using MAX −MIN Ant Colony Optimization
Instruction scheduling is a fundamental step for a mapping an application to a computational device. It takes a behavioral application specification and produces a schedule for the instructions onto a collection of system processing units. The objective is to minimize the completion time of the given application while effectively utilizing the computational resources. The instruction scheduling...
متن کاملOptimal and Heuristic Global Code Motion for Minimal Spilling
The interaction of register allocation and instruction scheduling is a well-studied problem: Certain ways of arranging instructions within basic blocks reduce overlaps of live ranges, leading to the insertion of less costly spill code. However, there is little previous research on the extension of this problem to global code motion, i .e., the motion of instructions between blocks. We present a...
متن کامل